#define semophore int
semophore ac=0;//ac 和 bc必须分开，因为a，b没有关系
semophore bc=0;
semophore ce=0;
semophore de=0;

void doSomething();

void a(){
    doSomething();
    v(ac);
}
void b(){
    doSomething();
    v(bc);
}
void c(){
    p(ac);
    p(bc);
    doSomething();
}
void d(){
    doSomething();
    v(de);
}
void e(){
    p(ce);
    p(de);
    doSomething();
}